baktosh
Goto Top

Ownership von Ordner und Unterordner auf User übertragen

Hallo zusammen,

aktuell sitze ich an einer echten Nuss für mich...

Per Powershellscript soll das Umbenennen von AD Useraccounts automatisiert werden.
Also wenn eine Person heiratet, geschieden etc.

Die Änderungen sollen sowohl am AD-Objekt, den Stammdaten, als auch den Userbezogenen Verzeichnissen für Users und Profiles gemacht werden.

Funktionieren tut bereits die Umbenennung des AD-Objekts, die Änderung der relevanten Stammdaten im AD-Account als auch des Windowsusernamens.

Ebenfalls funktioniert den Users sowie Profiles Ordner vom alten Usernamen auf den neuen umzuschreiben, sowie den neuen Usernamen mit Vollzugriff zu hinterlegen. Alles natürlich nach Übernahme von Ordnerbesitz und Besitzübernahmen von Unterordner und Dateien durch "Administrators" per SetOwner als auch als auch takeown.

Meine Problematik besteht jetzt im "Zurückschieben" des Ordnerbesitzes des Hauptverzeichnisses als auch der Unterordner und Dateien. Denn nach Abschluss der Arbeiten soll der Owner natürlich nur der neue Username sein.

Takeown funktioniert hier ja leider nicht, da das ja nur mit Administrators funktioniert.

Dann habe ich folgendes versucht

$acl = Get-Acl $folder
            $ar = New-Object System.Security.Principal.NTAccount("$NewUsername")  
            $acl.SetOwner($ar)
            Set-Acl $folder $acl

was zu einer Meldung geführt hat "powershell exception calling set owner with 1 argument. Some or all enteties could not be found"

Dann hatte ich noch gelesen das man in diesem Fall über die SID den neuen User auslesen soll und diesen dann als Owner eintragen. Da dieser dann autom. in den normal lesbaren Usernamen umgeschrieben wird.

Das habe ich dann mit

$NewUserAD = Get-Aduser $NewUsername -properties * | select objectsid

# Give SID as input to .NET Framework Class
$SID = New-Object System.Security.Principal.SecurityIdentifier("$NewUserAD")  
# Use Translate to find user from sid
$objUser = $SID.Translate([System.Security.Principal.NTAccount])
# Print the converted SID to username value
$objUser.Value

versucht und erhalte für $objUser.Value verschiedene Meldungen

exception calling "translate" with "1" argument(s): "some or all identity references could not be translated."

bzw.

new-object : exception calling ".ctor" with "1" argument(s): "value was invalid.

Das "lustige" ist, wenn ich anstatt $NewUserAD die SID eintrage, dann sucht er mir als Ergebnis von $objUser.Value den richtigen NEUEN Windowsuser heraus.


Wäre daher klasse, wenn mir hier jemand aufzeigen könnte wie das richtige gescripted aussieht, damit ich den Ordnerbesitz etc. wieder von "Administrators" auf den jeweiligen neuen Usernamen schieben kann.


Viele Grüße & Danke im Voraus

Content-Key: 6769505198

Url: https://administrator.de/contentid/6769505198

Printed on: June 2, 2024 at 23:06 o'clock

Member: mayho33
mayho33 Apr 14, 2023 at 16:01:10 (UTC)
Goto Top
Member: MysticFoxDE
MysticFoxDE Apr 14, 2023 at 17:56:05 (UTC)
Goto Top
Moin @Baktosh,

sowie den neuen Usernamen mit Vollzugriff zu hinterlegen. Alles natürlich nach Übernahme von Ordnerbesitz und Besitzübernahmen von Unterordner und Dateien durch "Administrators" per SetOwner als auch als auch takeown.

ähm, bitte was?
Wenn du einen bestehenden Windows-Benutzer lediglich umbenennen tust, dann musst du an dessen Berechtigung überhaupt nichts korrigieren, weil diese (bei Windows) nicht über den Usernamen selbst "verknüpft" werden, sondern über dessen SID. Und die wiederum bleibt immer gleich, egal wie oft man den entsprechenden Benutzer umbenennen tut.
Ausser man löscht beim Umbenennen das ursprüngliche Userobjekt mit dem alten Namen aus dem AD raus und erstellt mit dem neuen Namen ein neues, das ist jedoch im Sinne eines Umbenennens ein kompletter Unsinn.

Beste Grüsse aus BaWü
Alex
Member: aqui
aqui Apr 14, 2023 updated at 18:09:34 (UTC)
Goto Top
"Tuten tut der Nachtwächter. Und wenn er genug getutet hat, tut er seine Tute wieder in den Tutkasten rein."
scnr Freitag.. 🐟🤣
Member: Baktosh
Baktosh Apr 14, 2023 at 18:20:29 (UTC)
Goto Top
Zitat von @MysticFoxDE:

Moin @Baktosh,

sowie den neuen Usernamen mit Vollzugriff zu hinterlegen. Alles natürlich nach Übernahme von Ordnerbesitz und Besitzübernahmen von Unterordner und Dateien durch "Administrators" per SetOwner als auch als auch takeown.

ähm, bitte was?
Wenn du einen bestehenden Windows-Benutzer lediglich umbenennen tust, dann musst du an dessen Berechtigung überhaupt nichts korrigieren, weil diese (bei Windows) nicht über den Usernamen selbst "verknüpft" werden, sondern über dessen SID. Und die wiederum bleibt immer gleich, egal wie oft man den entsprechenden Benutzer umbenennen tut.
Ausser man löscht beim Umbenennen das ursprüngliche Userobjekt mit dem alten Namen aus dem AD raus und erstellt mit dem neuen Namen ein neues, das ist jedoch im Sinne eines Umbenennens ein kompletter Unsinn.

Beste Grüsse aus BaWü
Alex

In der AD ist das wohl richtig.

Aber ich muss auf unseren Fileservern den Profiles als auch den Users Ordner, Homefolder / Roamingprofil etc weil Terminalserver, welche ja auch den Usernamen als Bezeichnung tragen ändern. Und diese Umbenennung kann ich ja nur machen wenn ich auch Owner des jeweiligen Ordners bin.

Daher wird für die Umbenennung der Owner auf die Gruppe "Administrators" geändert, dann das Verzeichnis umbenannt. Nun soll natürlich in einem letzten Schritt das Ownership des Verzeichnisses wieder auf den nun umbenannten User zurückgehen. Der Owner des Ordners sowie aller Unterordner und Dateien muss immer der jeweilige User sein.

Wie gesagt der Hinweg User -> Administrators funktioniert ohne Probleme. Bräuchte jetzt halt Unterstützung für den Rückweg Administrators -> User
Member: Baktosh
Baktosh Apr 14, 2023 at 18:30:27 (UTC)
Goto Top

Danke für deine Mühe, aber nein...
In den Freds wird ja nur jeweils ein / das mögliche Ablaufszenario beschrieben das für sinnvoll gehalten wird.

Ein derartiges Ablaufszenario gibt es bereits, wird nur derzeit in mühevoller Arbeit jeweils händisch gemacht.
Ich möchte dieses nun automatisieren und uns Zeit ersparen.

Hier bräuchte ich dann für den von mir angemerkten Part praktische Beispiele.
Mir gehen einfach, auch weil ich mit Powershell noch nicht so bewandert bin, die Ideen und Möglichkeiten aus.
Member: mayho33
mayho33 Apr 14, 2023 updated at 19:27:49 (UTC)
Goto Top
Zitat von @Baktosh:


Danke für deine Mühe, aber nein...
Ach was! Die 4 Artikel zu suchen hat mich etwa 15 Sekunden gekostet.

In den Freds wird ja nur jeweils ein / das mögliche Ablaufszenario beschrieben das für sinnvoll gehalten wird.
Und die Kombination aus allen ergeben wahrscheinlich 90% deiner Anforderungen. Du musst du natürlich noch selbst ein wenig recherchieren und adaptieren.

Aber ich muss auf unseren Fileservern den Profiles als auch den Users Ordner, Homefolder / Roamingprofil etc weil Terminalserver, welche ja auch den Usernamen als Bezeichnung tragen ändern.
Kommt wohl aufs Konzept an mit dem das alles umgesetzt wurde. Wenn jeder Ordner und jedes Profil auf Fileserver, RoamingProfile, HomeFolder usw. vom AD-Objekt des jeweiligen Users abgeleitet wurde, dann sollte das Umbenennen des Ad-User eigentlich schon die halbe Miete sein.

Und diese Umbenennung kann ich ja nur machen wenn ich auch Owner des jeweiligen Ordners bin.
Nein! Du brauchst "Ändern/Schreiben"-Rechte. Du musst nicht Owner sein.
Member: MysticFoxDE
MysticFoxDE Apr 14, 2023 updated at 19:15:07 (UTC)
Goto Top
Moin @Baktosh,

Aber ich muss auf unseren Fileservern den Profiles als auch den Users Ordner, Homefolder / Roamingprofil etc weil Terminalserver, welche ja auch den Usernamen als Bezeichnung tragen ändern. Und diese Umbenennung kann ich ja nur machen wenn ich auch Owner des jeweiligen Ordners bin.

Ich rieche da glaube ich ein paar %username% in den Konfigs. 🤪

Wie gesagt der Hinweg User -> Administrators funktioniert ohne Probleme. Bräuchte jetzt halt Unterstützung für den Rückweg Administrators -> User

Geht am besten mit icacls.

icacls C:\Temp\CoKG /setowner mike.schulze /t /c

😉

Siehe auch.
https://learn.microsoft.com/de-de/windows-server/administration/windows- ...

Beste Grüsse aus BaWü
Alex
Member: Baktosh
Baktosh Apr 21, 2023 at 13:29:30 (UTC)
Goto Top
Hi MysticFoxDE,

ja da vermutest du richtig.

Ich konnte mich jetzt auch endlich um deinen Hinweis kümmern.

Leider funktioniert es auch damit aus einem mir nicht ersichtlichen Grunde nicht.

Versucht habe ich es mit...

icacls $folder /setowner $NewUserName /t /c

Folder wird vorher als Ergebnis einer Abfrage aller vorhandenen Fileserver definiert und enthält die Pfade in denen sich ein Verzeichnis befindet das gleichlautend mit dem NEUEN SamAccountName ist.

NewUserName ist der NEUE SamAccountName welcher beim starten des Scriptes abgefragt wird

Mein Script steigt dann an der Stelle mit folgender Fehlermeldung / Hinweismeldung aus

"no mapping between account names and security ids was done"

Was ich jetzt mal rudimentär von der Bedeutung und von dem was ich dazu lesen konnte, damit übersetze, das er zum eingegebenen NewUserName keine SID finden konnte.

Wenn ich dann aber in die AD schaue, sehe ich das sowohl das AD-Objekt als auch in den Stammdaten selber alles auf den neuen Usernamen umgeändert wurde.

Auch auf dem Fileserver ist wie schon gesagt jeweils der neue Username als Ordnername hinterlegt. Also hat auch dort die Umbenennung funktioniert.

Besitzer des jeweiligen Ordners ist aber weiterhin "Administrators"

Noch Ideen hierzu, irgendwer?
Member: mayho33
mayho33 Apr 21, 2023 at 21:35:14 (UTC)
Goto Top
Zitat von @Baktosh:
Besitzer des jeweiligen Ordners ist aber weiterhin "Administrators"

Noch Ideen hierzu, irgendwer?

Mir ist zwar noch immer nicht klar warum du unbedingt den Besitzer ändern musst, sber du kannst "takeown.exe" nehmen.

https://learn.microsoft.com/de-de/windows-server/administration/windows- ...
Member: MysticFoxDE
MysticFoxDE Apr 22, 2023 updated at 05:35:47 (UTC)
Goto Top
Moin @Baktosh,

Besitzer des jeweiligen Ordners ist aber weiterhin "Administrators"

Noch Ideen hierzu, irgendwer?

ich bin heute in Stress, daher muss ich mich kurz fassen.
Das kann, wenn ich das richtig sehe, so auch nicht funktionieren, weil du dir damit den Ast wegsägst auf dem du selber sitzt. 😬

Du hast dir die Zugriffsrechte auf die Daten verschafft, indem du deren Besitz übernommen hast, die verlierst du aber auch ganz schnell wieder, wenn du den Besitzer wieder änderst.
Du musst bevor du den Besitzer wieder auf den User wechselst, unbedingt den Administrator selbst explizit mit vollen Zugriffsrechten zu den Berechtigungen der entsprechenden Daten hinzufügen und anschliessend kannst du mit dem Administrator den Besitzer dieser Daten wieder auf einen anderen Benutzer umschreiben. 😉

So, jetzt muss ich aber weiterflitzen.

Beste Grüsse aus BaWü
Alex
Member: mayho33
mayho33 Apr 22, 2023 at 08:52:03 (UTC)
Goto Top
Zitat von @MysticFoxDE:

Beste Grüsse aus BaWü
Alex

Jetzt habe ich doch glatt Bali gelesen 😅 Verdammt ich brauche ne Brille! 🤷‍♂️